package com.yanxx.codegenerator.storage;

import java.util.Set;

/**
 * 编码生成器存储接口
 * 用于持久化编号数据
 */
public interface CodeGeneratorStorage {
    
    /**
     * 保存当前状态
     *
     * @param currentMaxValue 当前最大编号值
     * @param confirmedCodes  已确认使用的编号集合
     * @param pendingCodes    待回收的编号集合
     * @param recycledCodes   已回收的编号集合
     * @return 是否保存成功
     */
    boolean save(long currentMaxValue, Set<String> confirmedCodes, Set<String> pendingCodes, Set<String> recycledCodes);
    
    /**
     * 加载保存的状态
     *
     * @return 加载的状态数据
     */
    CodeGeneratorState load();
    
    /**
     * 清除所有保存的状态
     *
     * @return 是否清除成功
     */
    boolean clear();
}